<?php
/**
 * View_Article
 *
 * Класс View_Article отвечает за вывод информации, связанной со статьями
 *
 * @author Mike
 */
class View_Article {

	/**
	 * Выводит список статей
	 * @param array $arrArticles - массив статей
	 */
	public static function showArticlesList(array $arrArticles) {
		echo '<div class="art-list">';
			foreach($arrArticles as $arrArticle) {
				echo '<div class="art-item">';
				echo '<h2><a href="' . W_ABSPATH . 'articles/' . $arrArticle['category_url'] . '/' . $arrArticle['url'] .'">' . $arrArticle['article_name'] . '</a></h2>';
			//	echo '<div class="art-text">' . $arrArticle['text'] . '</div>';
				echo '</div>';
			}
		echo '</div>';
	}

	/**
	 * Отображаем статью
	 *
	 * @param Article $objArticle - объект статьи
	 */
	public static function showArticlePage(Article $objArticle) {
		if($objArticle->getField('text')) {
			echo '<div class="art-text">';
				echo $objArticle->getField('text');
			echo '</div>';
		}
	}
	
	/**
	 * Отображаем информационную статью
	 *
	 * @param Article $objArticle - объект статьи
	 */
	public static function showInfoArticlePage(Article $objArticle) {
			echo '<div class="art-text">';
				echo $objArticle->getField('text');
			echo '</div>';
			echo '<div class="art-date">' . Service_Date::changeDateFormat($objArticle->getField('created_at'), 'Y-m-d H-i-s', 'j r H:i')  . '</div>';
			echo '<div class="art-views">Просмотров: ' . $objArticle->getField('views') . '</div>';
	}
	
	/**
	 * Выводит форму добавления/редактирвоания статьи
	 * 
	 * @param Article $objArticle
	 */
	public static function showEditForm(Article $objArticle) {
		$objForm = new View_Form(array('id' => 'article-edit-form', 'left-width' => 120), $objArticle);
		$objForm->show();
			$objForm->textField(array('name' => 'article_name', 'text' => 'Название'));
			$objForm->checkbox(array('name' => 'no_show_name', 'label' => 'Не показывать название на странице', 'id' => 'no_show_name','is_checked' => $objArticle->getField('no_show_name') ? true : false));
			$objForm->textField(array('name' => 'url', 'text' => 'URL'));
			$objForm->textField(array('name' => 'title', 'text' => 'Title'));
			$objForm->textField(array('name' => 'description', 'text' => 'Meta description'));
			$objForm->textField(array('name' => 'keywords', 'text' => 'Meta kewords'));
			$objForm->select(array('name' => 'ID_article_category', 'options' => ArticleCategory::getAllCategories(), 'chooseText' => 'Без категории', 'text' => 'Категория'));
			
			$pageType = $objArticle->getField('essence_type');
			echo '<h2>Тип страницы</h2>';
			$objForm->radio(array('name' => 'essence_type', 'id' => 'is_page', 'value' => 1, 'label' => 'Страница', 'is_checked' => $pageType == 1 ? true : false));
			$objForm->radio(array('name' => 'essence_type', 'id' => 'is_article', 'value' => 2, 'label' => 'Статья', 'is_checked' => $pageType == 2 ? true : false));
			$objForm->radio(array('name' => 'essence_type', 'id' => 'is_news', 'value' => 3, 'label' => 'Новость', 'is_checked' => $pageType == 3 ? true : false));
			
			$objForm->textArea(array('name' => 'text', 'id' => 'text', 'text' => 'Текст'));
			echo '<script type="text/javascript">CKEDITOR.replace(\'text\');</script>';
			$objForm->hiddenField(array('name' => 'ID_article'));
			$objForm->submit();
		$objForm->close();
	}
	
	
	
	/**
	 * Выводим формы для конкретных статей 
	 * 
	 * @param string $url - URL статьи
	 * @pararm Data $objData - объект данных формы
	 */
	public static function showArticleForms($url, Data $objData) {
		switch ($url) {
			case 'sizes': self::showSizesTables(); break;
			case 'contacts': self::showContactsForm(); break;
			case 'add_city': self::showAddCityForm($objData); break;
		}
	}
	
	/**
	 * Выводит список статей
	 *
	 * @param array $arrArticles - массив статей
	 */
	public static function showArticlesPage(&$arrArticles) {
		View_Article::showArticlesList($arrArticles);
	}
	
	/**
	 * Выводит страницу статей(основные страницы) для админа
	 *
	 * @param array $arrArticles - массив страниц
	 */
	public static function showAdminArticles(&$arrArticles) {
		echo '<div class="admin-list">';
		if(empty($arrArticles)) {
			echo 'Страниц пока нет';
		}
		else {
			foreach($arrArticles as $arrArticle) {
				echo '<div class="item">';
					echo '<a href="' . W_ADMIN . 'articles/edit/' . $arrArticle['ID_article'] . '">'  . $arrArticle['article_name'] . '</a> (/' . $arrArticle['url'] . ')';
				echo '</div>';
			}
		}
		echo '</div>';
	}
	
	/**
	 * Выводит форму обратной связи на странице "контакты"
	 */
	public static function showContactsForm() {
		echo '<div class="feedback-form">';
			$objForm = new View_Form(array('id' => 'feedback-form'));
			$objForm->show();
				echo '<div class="field-bl">E-mail</div>';
				$objForm->textField(array('name' => 'e_mail', 'id' => 'e_mail'));
				echo '<div class="field-bl">Текст</div>';
				$objForm->textArea(array('name' => 'text', 'id' => 'text'));
				$objForm->submit(array('class' => 'blue-btn fr'));
			$objForm->close();
		echo '</div>';
	}
	
	/**
	 * Ввыодит левое меню в разделе статьи
	 * @param array $arrArticlesCategories
	 */
	public static function showLeft(array $arrArticlesCategories) {
		echo '<div id="left">';
			echo '<div class="m-title">КАТЕГОРИИ СТАТЕЙ</div>';
			echo '<ul class="art-categories">';
				foreach($arrArticlesCategories as $arrArticlesCategory) {
					echo '<li>';
						echo '<a href="' . W_ABSPATH . 'articles/' . $arrArticlesCategory['category_url'] . '">' . $arrArticlesCategory['category_name'] . '</a>';
					echo '</li>';	
				}
			echo '</ul>';
		echo '</div>';
	}
}
?>